package com.woniu.day8.util;

import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;

/**
 * Token过期枚举类
 */
public enum TokenEnum {
    /**
     * TOKENEXPIRE:表示token过期
     * TOKENINVALID:表示token非法
     * TOKENSUCCESS:表示token合法
     */
    TOKENSUCCESS("token合法"),
    TOKENEXPIRE("token已过期"),
    TOKENINVALID("非法token");

    private String description;

    TokenEnum(String description) {
        this.description = description;
    }

    public String getDescription() {
        return description;
    }

    /**
     * 验证 token 的方法
     */
    public static TokenEnum verify(String token) {
        // 这里只是一个示例，实际的 token 验证逻辑需要根据你的需求来实现
        if (token == null || token.isEmpty()) {
            return TOKENINVALID;
        }

        // 假设这里有一个简单的过期时间检查逻辑
        long currentTime = System.currentTimeMillis();
        long tokenExpirationTime = getTokenExpirationTime(token); // 获取 token 的过期时间

        if (currentTime > tokenExpirationTime) {
            return TOKENEXPIRE;
        }

        // 如果 token 没有过期且格式正确，则认为是有效的
        return TOKENSUCCESS;
    }

    /**
     * 获取 token 的过期时间（示例方法）
     */
    private static long getTokenExpirationTime(String token) {
        // 这里应该解析 token 并获取其过期时间，这里只是简单地返回一个固定值作为示例
        return System.currentTimeMillis() + 3600000; // 假设 token 有效期为 1 小时
    }
}